﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;


namespace CMS_GYM
{
#region Block class
public class Block 
{
    #region Attribute
    /// <summary>
    /// Kết nối SQL Server
    /// </summary>
    private CSQLServer sqlServer = new CSQLServer();
            
    public string BLOCK_ID;
    public string BLOCK_NAME;
    public string WARD_ID;
    public string DIST_ID;
    public string PROV_ID;
    public  string Mess;
    private  DataTable dtAll;
    public  bool isChanged = true;

    #endregion

    public Block() { }
    //────────────────────────────────────────────────────────────────────────
    private static string s_Select()
    {
        return " SELECT B.*,P_TENPHUONG,QH_TENQUANHUYEN,T_TENTINHTHANH,W.QH_ID,D.T_ID"
                        + " LEFT JOIN TBL_WARD W ON B.WARD_ID=W.WARD_ID "
                        + " LEFT JOIN TBL_DISTRICT D ON W.DIST_ID=D.DIST_ID "
                        + " LEFT JOIN TBL_PROVINCE P ON D.PROV_ID=P.PROV_ID ";


    }
    //────────────────────────────────────────────────────────────────────────
    public Block(string s_BlockID)
    {
        DataTable dt = sqlServer.ReadDataQuery(s_Select() + " WHERE B.BLOCK_ID=" + s_BlockID);
        if (dt == null || dt.Rows.Count == 0) return;
        this.BLOCK_ID = dt.Rows[0][0].ToString();
        this.BLOCK_NAME = dt.Rows[0][1].ToString();
        this.WARD_ID = dt.Rows[0][2].ToString();
        this.DIST_ID = dt.Rows[0][7].ToString();
        this.PROV_ID = dt.Rows[0][8].ToString();



    }
    //────────────────────────────────────────────────────────────────────────
    public Block(DataView dv, int pos)
    {
        if (dv == null || dv.Count == 0) return;
        this.BLOCK_ID = dv[pos][0].ToString();
        this.BLOCK_NAME = dv[pos][1].ToString();
        this.WARD_ID = dv[pos][2].ToString();
        this.DIST_ID = dv[pos][7].ToString();
        this.PROV_ID = dv[pos][8].ToString();

    }
    //────────────────────────────────────────────────────────────────────────

    public  System.Data.DataTable dt_Search(string s_Value)
    {
        string s_NameNotSign = hsTool.s_GetNameNotSign(s_Value);
        string sqlSelect = s_Select() + " WHERE BLOCK_NAME LIKE N'%" + s_Value + "%' "
                                        + " OR BLOCK_NAME_NOT_SIGN LIKE '%" + s_NameNotSign + "%'";
        return sqlServer.ReadDataQuery(sqlSelect);
    }
    //────────────────────────────────────────────────────────────────────────
    public  int int_Search(string s_Value, DataTable dtSearch)
    {
        DataTable dt = dt_Search(s_Value);
        if (dt == null || dt.Rows.Count == 0)
        {
            Mess = "Không tìm thấy Chung cư-Cư xá nói trên";
            return -1;
        }
        else
            return hsTool.int_Search(dtSearch, "BLOCK_ID=" + dt.Rows[0][0].ToString());
    }
    //────────────────────────────────────────────────────────────────────────
    public bool Insert(string s_BlockName, string s_WardID)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  TBL_BLOCK  WHERE  "
            + " BLOCK_Name=N'" + s_BlockName + "'"
            + " AND WARD_ID=" + s_WardID;
        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);
        if (DT == null)
        {
            Mess = "Thêm Chung cư-cư xá thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại Chung cư-cư xá nói trên";
            return false;
        }

        string sqlInsert = " INSERT INTO TBL_BLOCK (BLOCK_NAME,BLOCK_NAME_NOT_SIGN"
                            + " ,WARD_ID) VALUES(N'" + s_BlockName + "','"
                            + hsTool.s_GetNameNotSign(s_BlockName) + "'," + s_WardID + ")";
        int Result = sqlServer.Exec(sqlInsert);
        if (Result != 1)
        {
            Mess = "Thêm  Chung cư-cư xá thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Thêm -Chung cư-cư xá thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select() + " ORDER BY PROV_NAME,DIST_NAME,WARD_NAME");
        return true;
    }//end void
    //────────────────────────────────────────────────────────────────────────
    public bool Update(string s_BlockName, string s_WardID)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  TBL_BLOCK  WHERE"
                            + " BLOCK_Name=N'" + s_BlockName + "'"
                            + " AND  BLOCK_ID <>" + this.BLOCK_ID
                            + " AND WARD_ID=" + s_WardID;


        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);

        if (DT == null)
        {
            Mess = " Cập nhật Chung cư-cư xá thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại Chung cư-cư xá nói trên";
            return false;
        }
        string s_NameNotSign = hsTool.s_GetNameNotSign(s_BlockName);
        string sqlUpdate = "UPDATE TBL_BLOCK  SET BLOCK_NAME=N'" + s_BlockName + "'"
                            + ",BLOCK_NAME_NOT_SIGN='" + s_NameNotSign + "'"
                            + " , ward_ID=" + s_WardID
                            + " WHERE BLOCK_ID=" + this.BLOCK_ID;
        if (sqlServer.Exec(sqlUpdate) != 1)
        {
            Mess = "Cập nhật Chung cư-cư xá thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Cập nhật Chung cư-cư xá thành công";
        this.BLOCK_NAME = s_BlockName;
        this.WARD_ID = s_WardID;
        if (dtAll != null)
        {
            int n = hsTool.int_Index(dtAll, this.BLOCK_ID);
            if (n != -1)
            {
                dtAll.Rows[n][1] = s_BlockName;
                dtAll.Rows[n][2] = s_WardID;
                dtAll.Rows[n]["BLOCK_NAME_NOT_SIGN"] = s_NameNotSign;
            }
        }

        return true;
    }
    //────────────────────────────────────────────────────────────────────────
    public bool Delete()
    {

        bool temp = (sqlServer.Exec(" DELETE FROM TBL_BLOCK WHERE BLOCK_ID='" + this.WARD_ID) == 1 ? true : false);
        if (temp)
        {
            Mess = " Xoá Chung cư-cư xá:" + this.BLOCK_NAME + " thành công";
            if (dtAll != null)
            {
                int n = hsTool.int_Index(dtAll, this.BLOCK_ID);
                if (n != -1) dtAll.Rows.RemoveAt(n);

            }
        }
        else
            Mess = " Xoá Chung cư-cư xá:" + this.BLOCK_NAME + " thất bại";
        return temp;
    }
    //────────────────────────────────────────────────────────────────────────
    public  System.Data.DataTable dt_GetBlocks()
    {
        if (dtAll == null || isChanged)
        {
            dtAll = sqlServer.ReadDataQuery(s_Select() + " ORDER BY PROV_NAME,DIST_NAME,WARD_NAME,BLOCK_NAME");
            isChanged = false;
        }

        return dtAll;
    }
    //────────────────────────────────────────────────────────────────────────

    public  System.Data.DataTable dt_GetBlocks(string s_WardID)
    {
        return sqlServer.ReadDataQuery(s_Select() + " WHERE B.WARD_ID=" + s_WardID + " ORDER BY PROV_NAME,DIST_NAME,WARD_NAME,BLOCK_NAME");
    }
    //────────────────────────────────────────────────────────────────────────
    public  System.Data.DataTable dt_GetBlocks_Dist(string s_DistID)
    {
        return sqlServer.ReadDataQuery(s_Select() + " WHERE D.DIST_ID=" + s_DistID + " ORDER BY PROV_NAME,DIST_NAME,WARD_NAME,BLOCK_NAME");
    }
    //────────────────────────────────────────────────────────────────────────

    public static List<ColumnView> getViewStyle()
    {
        List<ColumnView> lstC = new List<ColumnView>();
        lstC.Add(new ColumnView("BLOCK_NAME", "Tên Chung cư-Cư xá", 0.3));
        lstC.Add(new ColumnView("WARD_NAME", "Phường-Xã", 0.3));
        lstC.Add(new ColumnView("DIST_NAME", "Quận-Huyện", 0.2));
        lstC.Add(new ColumnView("PROV_NAME", "Tỉnh -Thành phố", 0.2));
        return lstC;
    }
    //────────────────────────────────────────────────────────────────────────
    public  void UpdateNameNotSign()
    {
        DataTable dt = dt_GetBlocks();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            string namenotsign = hsTool.s_GetNameNotSign(dt.Rows[i][1].ToString());
            sqlServer.Exec(" UPDATE TBL_BLOCK SET BLOCK_NAME_NOT_SIGN='" + namenotsign + "' WHERE BLOCK_ID=" + dt.Rows[i][0].ToString());

        }
    }
    //────────────────────────────────────────────────────────────────────────
    public  string s_getBlockName(string s_BlockID)
    {
        return sqlServer.ReadDataQuery("SELECT TBL_BLOCK WHERE BLOCK_ID=" + s_BlockID).Rows[0][0].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
}
#endregion
#region Phuong class
public class Ward 
{
    private CSQLServer sqlServer = new CSQLServer();
    public string WARD_ID;
    public string WARD_NAME;
    public string WARD_ABBR;
    public string DIST_ID;
    public string PROV_ID;

    private  DataTable dtAll;
    public static string Mess;
    public static  bool isChanged = true;
    public Ward() { }
    //────────────────────────────────────────────────────────────────────────
    public  string s_Select()
    {
        return "SELECT W.*,QH_TENQUANHUYEN,P.T_TENTINHTHANH,D.T_ID  FROM CMS_PHUONG AS W "
                        + " LEFT JOIN CMS_QUANHUYEN  AS D ON D.QH_ID=W.QH_ID "
                        + " LEFT JOIN CMS_TINHTHANH P on D.T_ID=P.T_ID ";

    }
    //────────────────────────────────────────────────────────────────────────
    public Ward(string s_WardID)
    {
        string sqlSelect = s_Select() + " WHERE     P_ID=" + s_WardID;
        DataTable dt = sqlServer.ReadDataQuery(sqlSelect);
        if (dt == null && dt.Rows.Count == 0) return;
        this.WARD_ID = dt.Rows[0][0].ToString();
        this.DIST_ID = dt.Rows[0][1].ToString();
        this.WARD_NAME = dt.Rows[0][2].ToString();
        this.WARD_ABBR = dt.Rows[0][3].ToString();
        this.PROV_ID = dt.Rows[0][7].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
    public Ward(DataView dv, int pos)
    {
        if (dv == null && dv.Count == 0) return;
        this.WARD_ID = dv[pos][0].ToString();
        this.DIST_ID = dv[pos][1].ToString();
        this.WARD_NAME = dv[pos][2].ToString();
        this.WARD_ABBR = dv[pos][3].ToString();
        this.PROV_ID = dv[pos][7].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getWards()
    {
        if (dtAll == null || isChanged)
        {
            string sql = s_Select() + " order by T_TENTINHTHANH,QH_TENQUANHUYEN,P_TENPHUONG";
            dtAll = sqlServer.ReadDataQuery(sql);

            isChanged = false;
        }
        return dtAll;
    }
    public  DataTable dt_getWard()
    {
        string sql = "SELECT W.*,QH_TENQUANHUYEN,P.T_TENTINHTHANH,D.T_ID  FROM CMS_PHUONG AS W "
            + " LEFT JOIN CMS_QUANHUYEN  AS D ON D.QH_ID=W.QH_ID "
            + " LEFT JOIN CMS_TINHTHANH P on D.T_ID=P.T_ID "
            + " order by T_TENTINHTHANH,QH_TENQUANHUYEN,P_TENPHUONG";
        return sqlServer.ReadDataQuery(sql);
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getWards(string s_DistID)
    {
        string sql = "";
        sql = s_Select() + " WHERE W.QH_ID=" + s_DistID + " order by T_TENTINHTHANH,QH_TENQUANHUYEN,P_TENPHUONG";
        return sqlServer.ReadDataQuery(sql);
    }

    public  DataTable dt_getWards(string s_DistID, string LINK_SERVER)
    {
        string sql = "SELECT W.*,QH_TENQUANHUYEN,P.T_TENTINHTHANH,D.T_ID  FROM CMS_PHUONG AS W "
                    + " LEFT JOIN CMS_QUANHUYEN  AS D ON D.QH_ID=W.QH_ID "
                    + " LEFT JOIN CMS_TINHTHANH P on D.T_ID=P.T_ID "
                    + " WHERE W.QH_ID=" + s_DistID
                    + " order by T_TENTINHTHANH,QH_TENQUANHUYEN,P_TENPHUONG";
        return sqlServer.ReadDataQuery(sql);
    }
    public  DataTable LayDanhMucPhuong()
    {
        string sql = "SELECT * FROM CMS_PHUONG ORDER BY P_TENPHUONG ";

        return sqlServer.ReadDataQuery(sql);
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_Search(string s_Value)
    {
        string sqlSearch = s_Select() + " WHERE P_TENPHUONG LIKE N'%" + s_Value
                                    + "%' OR P_TENVIETTAT LIKE '%" + s_Value + "%'"
                                    + " order by T_TENTINHTHANH,QH_TENQUANHUYEN,P_TENPHUONG";
        return sqlServer.ReadDataQuery(sqlSearch);
    }
    //────────────────────────────────────────────────────────────────────────
    public  int int_Search(string s_Value, DataTable dtSearch)
    {
        DataTable dt = dt_Search(s_Value);
        if (dt == null || dt.Rows.Count == 0)
        {
            Mess = " Không tìm thấy Fường - Xã  nói trên";
            return -1;
        }
        else
            return hsTool.int_Search(dtSearch, "P_TENPHUONG=" + dt.Rows[0][0].ToString());
    }
    //────────────────────────────────────────────────────────────────────────

    public bool Insert(string s_WardName, string s_WardAbbr, string s_DISTID)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  CMS_PHUONG  WHERE  "
            + " (P_TENPHUONG=N'" + s_WardName + "' OR P_TENVIETTAT='" + s_WardAbbr + "') AND QH_ID=" + s_DISTID;
        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);
        if (DT == null)
        {
            Mess = "Thêm Phường-Xã thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại Phường-Xã nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlInsert = " INSERT INTO CMS_PHUONG (P_TENPHUONG,P_TENKHONGDAU"
                            + " ,P_TENVIETTAT,QH_ID) VALUES(N'" + s_WardName + "','"
                            + hsTool.s_GetNameNotSign(s_WardName) + "','" + s_WardAbbr
                            + "'," + s_DISTID + ")";
        int Result = sqlServer.Exec(sqlInsert);
        if (Result != 1)
        {
            Mess = "Thêm  Phường-Xã thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Thêm -Phường-Xã thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select());
        return true;
    }//end void
    //────────────────────────────────────────────────────────────────────────
    public bool Update(string s_WardName, string s_WardAbbr, string s_DISTID)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  CMS_PHUONG  WHERE"
                            + " (P_TENPHUONG=N'" + s_WardName + "' OR P_TENVIETTAT='" + s_WardAbbr + "')"
                            + " AND  P_ID <>" + this.WARD_ID
                            + " And QH_ID=" + s_DISTID;


        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);

        if (DT == null)
        {
            Mess = " Cập nhật Phường-Xã thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại Phường-Xã nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlUpdate = "UPDATE CMS_PHUONG  SET P_TENPHUONG=N'" + s_WardName + "'"
                            + ",P_TENVIETTAT='" + s_WardAbbr + "',"
                            + "P_TENKHONGDAU='" + hsTool.s_GetNameNotSign(s_WardName) + "'"
                            + " , QH_ID=" + s_DISTID
                            + " WHERE P_ID=" + this.WARD_ID;
        if (sqlServer.Exec(sqlUpdate) != 1)
        {
            Mess = "Cập nhật Phường-Xã thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Cập nhật Phường-Xã thành công";
        this.WARD_NAME = s_WardName;
        this.WARD_ABBR = s_WardAbbr;
        this.DIST_ID = s_DISTID;
        dtAll = sqlServer.ReadDataQuery(s_Select());
        return true;
    }
    //────────────────────────────────────────────────────────────────────────
    public bool Delete()
    {
        bool temp = (sqlServer.Exec(" DELETE FROM CMS_PHUONG WHERE P_ID='" + this.WARD_ID) == 1 ? true : false);
        if (temp)
        {
            Mess = " Xoá Phường-Xã:" + this.WARD_NAME + " thành công";
            dtAll = sqlServer.ReadDataQuery(s_Select());
        }
        else
            Mess = " Xoá Phường-Xã:" + this.WARD_NAME + " thất bại";
        return temp;
    }
    //────────────────────────────────────────────────────────────────────────
    public  List<ColumnView> getViewStyle()
    {
        List<ColumnView> lstC = new List<ColumnView>();
        lstC.Add(new ColumnView("P_TENPHUONG", "Tên Phường-Xã", 0.35));
        lstC.Add(new ColumnView("QH_TENQUANHUYEN", "Quận-Huyện", 0.2));
        lstC.Add(new ColumnView("T_TENTINHTHANH", "Tỉnh-Thành phố", 0.3));
        lstC.Add(new ColumnView("P_TENVIETTAT", "Tên viết tắt", 0.1));
        return lstC;
    }
    //────────────────────────────────────────────────────────────────────────
    public  void UpdateNameNotSign()
    {
        DataTable dt = dt_getWards();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            string namenotsign = hsTool.s_GetNameNotSign(dt.Rows[i][2].ToString());
            string sql = "UPDATE CMS_PHUONG SET P_TENKHONGDAU='" + namenotsign + "' WHERE P_ID=" + dt.Rows[i][0].ToString();
            sqlServer.Exec(sql);
        }
    }//end void
    //────────────────────────────────────────────────────────────────────────
    public  string s_getWardName(string s_WardName)
    {
        return sqlServer.ReadDataQuery("SELECT P_TENPHUONG FROM CMS_PHUONG WHERE P_ID=" + s_WardName).Rows[0][0].ToString();
    }
}//end class
#endregion
#region District class
public class District 
{
    private CSQLServer sqlServer = new CSQLServer();
    public string DIST_ID;
    public string DIST_NAME;
    public string DIST_NAME_NOT_SIGN;
    public string DIST_ABBR;
    public string PROV_ID;
    public static string Mess;
    private  DataTable dtAll;
    public static bool isChanged = true;
    public District() { }
    //────────────────────────────────────────────────────────────────────────
    public static string s_Select()
    {
        return "SELECT D.*,T_TENTINHTHANH FROM CMS_QUANHUYEN AS D "
                        + " LEFT JOIN CMS_TINHTHANH AS P ON D.T_ID=P.T_ID ";

    }
    //────────────────────────────────────────────────────────────────────────
    public District(string s_DistID)
    {
        string sqlSelect = s_Select() + " WHERE QH_ID=" + s_DistID;
        DataTable dt = sqlServer.ReadDataQuery(sqlSelect);
        if (dt == null && dt.Rows.Count == 0) return;
        this.DIST_ID = dt.Rows[0][0].ToString();
        this.PROV_ID = dt.Rows[0][1].ToString();
        this.DIST_NAME = dt.Rows[0][2].ToString();
        this.DIST_ABBR = dt.Rows[0][3].ToString();
        this.DIST_NAME_NOT_SIGN = dt.Rows[0][4].ToString();

    }
    //────────────────────────────────────────────────────────────────────────
    public District(DataView dv, int pos)
    {
        if (dv == null && dv.Count == 0) return;
        this.DIST_ID = dv[pos][0].ToString();
        this.PROV_ID = dv[pos][1].ToString();
        this.DIST_NAME = dv[pos][2].ToString();
        this.DIST_ABBR = dv[pos][3].ToString();
        this.DIST_NAME_NOT_SIGN = dv[pos][4].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getDistrict()
    {
        if (dtAll == null || isChanged)
        {
            string sql = sql = "SELECT D.*,T_TENTINHTHANH FROM CMS_QUANHUYEN D LEFT JOIN CMS_TINHTHANH P ON D.T_ID=P.T_ID";
            dtAll = sqlServer.ReadDataQuery(sql);
            isChanged = false;
        }
        return dtAll;
    }
    public  DataTable getDistrict()
    {


        string sql = "SELECT D.*,T_TENTINHTHANH FROM CMS_QUANHUYEN D LEFT JOIN CMS_TINHTHANH P ON D.T_ID=P.T_ID";
        return sqlServer.ReadDataQuery(sql);
    }
    //
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getDistrict(string s_ProvID)
    {
        string sql =  "SELECT D.*,T_TENTINHTHANH FROM CMS_QUANHUYEN D LEFT JOIN CMS_TINHTHANH P ON D.T_ID=P.T_ID "
                        + " WHERE D.t_ID=" + hsTool.ConvertToInt(s_ProvID) + " ORDER BY T_TENTINHTHANH, QH_TENQUANHUYEN";

        return sqlServer.ReadDataQuery(sql);
    }
           
    public  DataTable dt_loadDistrict()
    {

        string sql = "SELECT D.*,T_TENTINHTHANH FROM CMS_QUANHUYEN D LEFT JOIN CMS_TINHTHANH P ON D.T_ID=P.T_ID "
                    + " ORDER BY T_TENTINHTHANH, QH_TENQUANHUYEN ";

        return sqlServer.ReadDataQuery(sql);
    }

    public  DataTable dt_loadDistrictByName()
    {
        try
        {
            string strSql = string.Empty;
            strSql = " select max(QH_ID) as QH_ID, max(T_ID) as T_ID, d.QH_TENQUANHUYEN from CMS_QUANHUYEN d group by QH_TENQUANHUYEN order by QH_TENQUANHUYEN ";
            return sqlServer.ReadDataQuery(strSql);
        }
        catch (Exception) { return null; }
    }

    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_Search(string s_Value)
    {
        string sqlSearch = s_Select() + " WHERE QH_TENQUANHUYEN LIKE N'%" + s_Value
                                    + "%' OR QH_TENVIETTAT LIKE '%" + s_Value + "%'"
                                    + " ORDER BY T_TENTINHTHANH, QH_TENQUANHUYEN ";
        return sqlServer.ReadDataQuery(sqlSearch);
    }
    //────────────────────────────────────────────────────────────────────────
    public  int int_Search(string s_Value, DataTable dtSearch)
    {
        DataTable dt = dt_Search(s_Value);
        if (dt == null || dt.Rows.Count == 0)
        {
            Mess = "Không tồn tại Quận-Huyện nói trên";
            return -1;
        }
        else
            return hsTool.int_Search(dtSearch, "QH_ID=" + dt.Rows[0][0].ToString());
    }
    //────────────────────────────────────────────────────────────────────────

    public bool Insert(string s_DistName, string s_DistAbbr, string s_ProvID)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  CMS_QUANHUYEN  WHERE  "
            + " (QH_TENQUANHUYEN=N'" + s_DistName + "' OR QH_TENVIETTAT='" + s_DistAbbr + "') "
            + " AND T_ID=" + s_ProvID;
        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);
        if (DT == null)
        {
            Mess = "Thêm Quận-Huyện thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại Quận-Huyện nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlInsert = " INSERT INTO CMS_QUANHUYEN (QH_TENQUANHUYEN,QH_TENKHONGDAU"
                            + " ,QH_TENVIETTAT,T_ID) VALUES(N'" + s_DistName + "','"
                            + hsTool.s_GetNameNotSign(s_DistName) + "','" + s_DistAbbr
                            + "'," + s_ProvID + ")";
        int Result = sqlServer.Exec(sqlInsert);
        if (Result != 1)
        {
            Mess = "Thêm  Quận-Huyện thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Thêm -Quận-Huyện thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select());
        return true;
    }//end void
    //────────────────────────────────────────────────────────────────────────
    public bool Update(string s_DistName, string s_DistAbbr, string s_ProvID)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  CMS_QUANHUYEN  WHERE"
                            + " (QH_TENQUANHUYEN=N'" + s_DistName + "' OR QH_TENVIETTAT='" + s_DistAbbr + "')"
                            + " AND  QH_ID <>" + this.DIST_ID;


        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);

        if (DT == null)
        {
            Mess = " Cập nhật Quận-Huyện thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại Quận-Huyện nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlUpdate = "UPDATE CMS_QUANHUYEN  SET QH_TENQUANHUYEN=N'" + s_DistName + "'"
                            + ",QH_TENVIETTAT='" + s_DistAbbr + "',"
                            + "QH_TENKHONGDAU='" + hsTool.s_GetNameNotSign(s_DistName) + "'"
                            + " , T_ID=" + s_ProvID
                            + " WHERE QH_ID=" + this.DIST_ID;
        if (sqlServer.Exec(sqlUpdate) != 1)
        {
            Mess = "Cập nhật Quận-Huyện thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Cập nhật Quận-Huyện thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select());
        this.DIST_NAME = s_DistName;
        this.DIST_ABBR = s_DistAbbr;
        this.PROV_ID = s_ProvID;
        return true;
    }
    //────────────────────────────────────────────────────────────────────────
    public bool Delete()
    {
        bool temp = (sqlServer.Exec(" DELETE FROM CMS_QUANHUYEN WHERE QH_ID='" + this.DIST_ID) == 1 ? true : false);
        if (temp)
        {
            Mess = " Xoá Quận-Huyện:" + this.DIST_NAME + " thành công";
            dtAll = sqlServer.ReadDataQuery(s_Select());
        }
        else
            Mess = " Xoá Quận-Huyện:" + this.DIST_NAME + " thất bại";
        return temp;
    }
    //────────────────────────────────────────────────────────────────────────
    public  List<ColumnView> getViewStyle()
    {
        List<ColumnView> lstC = new List<ColumnView>();
        lstC.Add(new ColumnView("QH_TENQUANHUYEN", "Tên Quận-Huyện", 0.35));
        lstC.Add(new ColumnView("QH_TENVIETTAT", "Tên viết tắt", 0.20));
        lstC.Add(new ColumnView("T_TENTINHTHANH", "Tỉnh-Thành phố", 0.4));
        return lstC;
    }
    //────────────────────────────────────────────────────────────────────────
    public  void UpdateNameNotSign()
    {
        DataTable dt = dt_getDistrict();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            string namenotsign = hsTool.s_GetNameNotSign(dt.Rows[i][2].ToString());
            sqlServer.Exec(" UPDATE cms_quanhuyen SET QH_TENKHONGDAU='" + namenotsign + "' WHERE qh_ID=" + dt.Rows[i][0].ToString());

        }
    }//end void
    //────────────────────────────────────────────────────────────────────────
    public  string s_getDistName(string s_DistID)
    {
        return sqlServer.ReadDataQuery("SELECT QH_TENQUANHUYEN FROM cms_quanhuyen WHERE qh_ID=" + s_DistID).Rows[0][0].ToString();
    }
}//end class
#endregion
#region Province class
public class Province 
{
    private CSQLServer sqlServer = new CSQLServer();
    public string PROV_ID;
    public string PROV_NAME;
    public string PROV_ABBR;

    public static string Mess;
    private  DataTable dtAll;
    public static bool isChanged = true;
    //────────────────────────────────────────────────────────────────────────
    public Province() { }
    public static string s_Select()
    {
        return "SELECT * FROM cms_tinhthanh ";
    }
    //────────────────────────────────────────────────────────────────────────
    public Province(string s_ProvID)
    {
        string sqlSelect = s_Select() + " WHERE T_ID=" + s_ProvID;
        DataTable dt = sqlServer.ReadDataQuery(sqlSelect);
        if (dt == null && dt.Rows.Count == 0)
        {
            Mess = "Không tồn tại Tỉnh-Thành phố có Mã: " + s_ProvID;
            return;
        }
        this.PROV_ID = dt.Rows[0][0].ToString();
        this.PROV_NAME = dt.Rows[0][1].ToString();
        this.PROV_ABBR = dt.Rows[0][3].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
    public Province(DataView dv, int pos)
    {
        if (dv == null && dv.Count == 0) return;
        this.PROV_ID = dv[pos][0].ToString();
        this.PROV_NAME = dv[pos][1].ToString();
        this.PROV_ABBR = dv[pos][2].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_GetProvince()
    {
        if (dtAll == null || isChanged)
        {
            dtAll = sqlServer.ReadDataQuery("SELECT * FROM CMS_TINHTHANH ORDER BY T_TENTINHTHANH");
            isChanged = false;
        }
        return dtAll;
    }

    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_Search(string s_Value)
    {
        string namenotsign = hsTool.s_GetNameNotSign(s_Value);
        string sqlSelect = s_Select() + " WHERE T_TENTINHTHANH LIKE N'%" + s_Value
                                    + "%' OR T_TENKHONGDAU like '%" + namenotsign
                                    + "%' OR T_TENVIETTAT LIKE '%" + s_Value + "%'"
                                    + " ORDER BY T_TENTINHTHANH ";
        return sqlServer.ReadDataQuery(sqlSelect);
    }
    //────────────────────────────────────────────────────────────────────────
    public  int int_Search(string s_Value, DataTable dtSearch)
    {
        DataTable dt = dt_Search(s_Value);
        if (dt == null || dt.Rows.Count == 0)
        {
            Mess = "Không tồn tại Tình thành nói trên";
            return -1;
        }
        else
            return hsTool.int_Search(dtSearch, "T_ID=" + dt.Rows[0][0].ToString());

    }
    //────────────────────────────────────────────────────────────────────────
    public bool Insert(string s_ProvName, string s_ProvAbbr)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  cms_tinhthanh  WHERE  "
            + " T_TENTINHTHANH = N'" + s_ProvName + "' OR T_TENVIETTAT = '" + s_ProvAbbr + "'";
        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);
        if (DT == null)
        {
            Mess = "Thêm Tỉnh-Thành phố thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại thành phố nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlInsert = " INSERT INTO cms_tinhthanh (T_TENTINHTHANH,T_TENKHONGDAU"
                            + " ,T_TENVIETTAT) VALUES(N'" + s_ProvName + "','"
                            + hsTool.s_GetNameNotSign(s_ProvName) + "','" + s_ProvAbbr
                            + "')";
        int Result = sqlServer.Exec(sqlInsert);
        if (Result != 1)
        {
            Mess = "Thêm  Tỉnh-thành phố thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Thêm -thành phố thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select());
        return true;
    }//end void
    //────────────────────────────────────────────────────────────────────────
    public bool Update(string s_ProvName, string s_ProvAbbr)
    {
        string sqlSearch = "";
        sqlSearch += "SELECT COUNT(*) FROM  cms_tinhthanh  WHERE"
                                + " (T_TENTINHTHANH=N'" + s_ProvName + "' OR T_TENVIETTAT = '" + s_ProvAbbr + "')"
                                + " AND  T_ID <>" + this.PROV_ID;

        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);

        if (DT == null)
        {
            Mess = " Cập nhật Tinh-thành phố thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại thành phố nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlUpdate = "UPDATE cms_tinhthanh  SET T_TENTINHTHANH=N'" + s_ProvName + "'"
                            + ",T_TENVIETTAT='" + s_ProvAbbr + "',"
                            + "T_TENKHONGDAU='" + hsTool.s_GetNameNotSign(s_ProvName) + "'"
                            + " WHERE T_ID=" + this.PROV_ID;
        if (sqlServer.Exec(sqlUpdate) != 1)
        {
            Mess = "Cập nhật tỉnh=thành phố thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Cập nhật  Tỉnh-Thành phố thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select());
        this.PROV_NAME = s_ProvName;
        this.PROV_ABBR = s_ProvAbbr;
        return true;
    }
    //────────────────────────────────────────────────────────────────────────
    public bool Delete()
    {
        bool temp = (sqlServer.Exec(" DELETE FROM CMS_TINHTHANH WHERE T_ID='" + this.PROV_ID + "'") == 1 ? true : false);
        if (temp)
        {
            Mess = " Xoá tỉnh thành phố:" + this.PROV_NAME + " thành công";
            dtAll = sqlServer.ReadDataQuery(s_Select());
        }
        else
            Mess = " Xoá Tỉnh/ Thành phố: " + this.PROV_NAME + " thất bại."
                + "\nTrước tiên, Bạn phải xóa tất cả các Danh mục Địa chỉ cấp con(Quận/Huyện) của Tỉnh/Thành Phố: " + this.PROV_NAME;
        return temp;
    }
    //────────────────────────────────────────────────────────────────────────
    public  List<ColumnView> getViewStyle()
    {
        List<ColumnView> lstC = new List<ColumnView>();
        lstC.Add(new ColumnView("T_TENTINHTHANH", "Tên tỉnh -Thành phố", 0.55));
        lstC.Add(new ColumnView("T_TENVIETTAT", "Tên viết tắt", 0.4));
        return lstC;
    }
    //────────────────────────────────────────────────────────────────────────
    public  void UpdateNameNotSign()
    {
        DataTable dt = dt_GetProvince();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            string namenotsign = hsTool.s_GetNameNotSign(dt.Rows[i][1].ToString());
            sqlServer.Exec(" UPDATE CMS_TINHTHANH SET T_TENKHONGDAU='" + namenotsign + "' WHERE T_ID=" + dt.Rows[i][0].ToString());

        }
    }
    //────────────────────────────────────────────────────────────────────────
    public  string s_getProvName(string s_ProvID)
    {
        return sqlServer.ReadDataQuery("SELECT T_TENTINHTHANH FROM CMS_TINHTHANH WHERE T_ID=" + s_ProvID).Rows[0][0].ToString();
    }

}//end class
#endregion
#region Street class
public class Street 
{
    private CSQLServer sqlServer = new CSQLServer();
    public string STRT_ID;
    public string STRT_NAME;
    public string STRT_NAME_NOT_SIGN;
    public string STRT_ABBR;
    public static string Mess;
    public static bool isChanged = true;
    private static DataTable dtAll;
    //────────────────────────────────────────────────────────────────────────
    public Street() { }
    public static string s_Select()
    {
        return "SELECT * FROM CMS_DUONG ";
    }
    //────────────────────────────────────────────────────────────────────────
    public Street(string s_STRT_ID)
    {
        string sqlSelect = s_Select() + " WHERE D_ID=" + s_STRT_ID;
        DataTable dt = sqlServer.ReadDataQuery(sqlSelect);
        if (dt == null && dt.Rows.Count == 0) return;
        this.STRT_ID = dt.Rows[0][0].ToString();
        this.STRT_NAME = dt.Rows[0][1].ToString();
        this.STRT_NAME_NOT_SIGN = dt.Rows[0][2].ToString();
        this.STRT_ABBR = dt.Rows[0][3].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
    public Street(DataView dvSearch, int Pos)
    {
        this.STRT_ID = dvSearch[Pos][0].ToString();
        this.STRT_NAME = dvSearch[Pos][1].ToString();
        this.STRT_ABBR = dvSearch[Pos][2].ToString();
        this.STRT_NAME_NOT_SIGN = dvSearch[Pos][3].ToString();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_GetStreet()
    {
        if (dtAll == null || isChanged)
        {
            dtAll = sqlServer.ReadDataQuery(s_Select() + " ORDER BY D_TENDUONG");
            isChanged = false;
        }
        return dtAll;
    }

    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_Search(string s_Value)
    {
        string namenotsign = hsTool.s_GetNameNotSign(s_Value);
        string sqlSelect = s_Select() + " WHERE D_TENDUONG LIKE N'%" + s_Value
                                    + "%' OR D_TENKHONGDAU LIKE'%" + namenotsign
                                    + "%' OR D_TENVIETTAT LIKE '%" + s_Value + "%'"
                                + " ORDER BY D_TENDUONG";
        return sqlServer.ReadDataQuery(sqlSelect);
    }
    //────────────────────────────────────────────────────────────────────────
    public  int int_Search(string s_Value, DataTable dtSeach)
    {
        DataTable dt = dt_Search(s_Value);
        if (dt == null || dt.Rows.Count == 0)
        {
            Mess = "Không tìm thấy đường nói trên";
            return -1;
        }
        else
            return hsTool.int_Search(dtSeach, " D_ID=" + dt.Rows[0][0].ToString());
    }
    //────────────────────────────────────────────────────────────────────────
    public bool Insert(string s_STRT_NAME, string s_STRT_ABBR)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  CMS_DUONG  WHERE  "
            + " D_TENDUONG=N'" + s_STRT_NAME + "' OR D_TENVIETTAT='" + s_STRT_ABBR + "'";
        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);
        if (DT == null)
        {
            Mess = "Thêm Đường thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại thành phố nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlInsert = " INSERT INTO CMS_DUONG (D_TENDUONG,D_TENKHONGDAU"
                            + " ,D_TENVIETTAT) VALUES(N'" + s_STRT_NAME + "','"
                            + hsTool.s_GetNameNotSign(s_STRT_NAME) + "','" + s_STRT_ABBR
                            + "')";
        int Result = sqlServer.Exec(sqlInsert);
        if (Result != 1)
        {
            Mess = "Thêm  Đường thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Thêm  Đường  thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select());
        return true;
    }//end void
    //────────────────────────────────────────────────────────────────────────
    public bool Update(string s_STRT_NAME, string s_STRT_ABBR)
    {
        string sqlSearch = "SELECT COUNT(*) FROM  CMS_DUONG  WHERE"
                            + " (D_TENDUONG=N'" + s_STRT_NAME + "' OR D_TENVIETTAT='" + s_STRT_ABBR + "')"
                            + " AND  D_ID <>" + this.STRT_ID;


        System.Data.DataTable DT = sqlServer.ReadDataQuery(sqlSearch);

        if (DT == null)
        {
            Mess = " Cập nhật Đường thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        if (DT.Rows[0][0].ToString().Trim() != "0")
        {
            Mess = "Đã tồn tại Đường nói trên \r\n Kiểm tra cách viết tắt";
            return false;
        }

        string sqlUpdate = "UPDATE CMS_DUONG  SET D_TENDUONG=N'" + s_STRT_NAME + "'"
                            + ",D_TENVIETTAT='" + s_STRT_ABBR + "',"
                            + "D_TENKHONGDAU='" + hsTool.s_GetNameNotSign(s_STRT_NAME) + "'"
                            + " WHERE D_ID=" + this.STRT_ID;
        if (sqlServer.Exec(sqlUpdate) != 1)
        {
            Mess = "Cập nhật Đường thất bại \r\n Kiểm tra kết nối";
            return false;
        }
        Mess = "Cập nhật Đường thành công";
        dtAll = sqlServer.ReadDataQuery(s_Select());
        this.STRT_NAME = s_STRT_NAME;
        this.STRT_ABBR = s_STRT_ABBR;
        return true;
    }
    //────────────────────────────────────────────────────────────────────────
    public bool Delete()
    {
        bool temp = (sqlServer.Exec(" DELETE FROM CMS_DUONG WHERE D_ID=" + this.STRT_ID) == 1 ? true : false);
        if (temp)
        {
            Mess = " Xoá Đường:" + this.STRT_NAME + " thành công";
            dtAll = sqlServer.ReadDataQuery(s_Select());
        }
        else
            Mess = " Xoá Đường:" + this.STRT_NAME + " thất bại";
        return temp;
    }
    //────────────────────────────────────────────────────────────────────────
    public  List<ColumnView> getViewStyle()
    {
        List<ColumnView> lstC = new List<ColumnView>();
        lstC.Add(new ColumnView("D_TENDUONG", "Tên đường", 0.65));
        lstC.Add(new ColumnView("D_TENVIETTAT", "Tên viết tắt", 0.3));
        return lstC;
    }
    //────────────────────────────────────────────────────────────────────────
    //public  void UpdateNameNotSign()
    //{
    //    DataTable dt = ds_gets();
    //    for (int i = 0; i < dt.Rows.Count; i++)
    //    {
    //        string namenotsign = hsTool.s_GetNameNotSign(dt.Rows[i][1].ToString());
    //        sqlServer.Exec(" UPDATE CMS_DUONG SET D_TENKHONGDAU='" + namenotsign + "' WHERE D_ID=" + dt.Rows[i][0].ToString());

    //    }
    //}//end void
    //────────────────────────────────────────────────────────────────────────
    public  string s_getStreetName(string s_STRT_ID)
    {
        return sqlServer.ReadDataQuery("SELECT D_TENDUONG FROM CMS_DUONG WHERE D_ID=" + s_STRT_ID).Rows[0][0].ToString();
    }
}//end class
#endregion
#region Subspartment class
//public class Subspartmen : Connect
//{
//    public string SUBPART_ID;
//    public string SUBPART_NAME;
//    public string NOTE;
//    public static bool isChanged = true;
//    public Subspartmen() { }
//    public Subspartmen(DataView dvSearch, int Pos)
//    {
//        this.SUBPART_ID = dvSearch[Pos][0].ToString();
//        this.SUBPART_NAME = dvSearch[Pos][1].ToString();
//        this.NOTE = dvSearch[Pos][2].ToString();

//    }

//    public static string Mess;
//    private static DataTable dtSubspart;
//    public bool InsertSubspart(string s_SUBSPART_NAME, string s_NOTE)
//    {
//        System.Data.DataTable DT = GetTable("SELECT COUNT(*) FROM TBL_SUB_DEPARTMENT WHERE SUBPART_NAME =N'"
//                                               + s_SUBSPART_NAME + "'");
//        if (DT == null)
//        {
//            Mess = "Thêm  khu vực thất bại \r\n Kiểm tra kết nối";
//            return false;
//        }
//        if (DT.Rows[0][0].ToString().Trim() != "0")
//        {
//            Mess = "Đã tồn tại khu vực nói trên";
//            return false;
//        }
//        string str = "Insert INTO TBL_SUB_DEPARTMENT(SUBPART_NAME,NOTE) VALUES(N'" + s_SUBSPART_NAME + "',N'" + s_NOTE + "')";

//        int Result = Exec(str);
//        if (Result != 1)
//        {
//            Mess = "Thêm khu vực thất bại \r\n Kiểm tra kết nối";
//            return false;
//        }
//        Mess = "Thêm khu vực thành công";
//        dtSubspart = GetTable("SELECT * FROM TBL_SUB_DEPARTMENT  ");
//        return true;


//    }
//    //────────────────────────────────────────────────────────────────────────
//    public bool UpdateSubspart(string s_SUBSPART_NAME, string s_NOTE)
//    {
//        string str = "UPDATE TBL_SUB_DEPARTMENT SET   SUBPART_NAME=N'" + s_SUBSPART_NAME + "',NOTE=N'" + s_NOTE + "'"
//                                         + " WHERE SUBPART_ID=" + this.SUBPART_ID;

//        int Result = Exec(str);
//        if (Result != 1)
//        {
//            Mess = "Cập nhật khu vực thất bại \r\n Kiểm tra kết nối";
//            return false;
//        }
//        Mess = "Cập nhật khu vực thành công";
//        dtSubspart = GetTable("SELECT * FROM TBL_SUB_DEPARTMENT  ");
//        this.SUBPART_NAME = s_SUBSPART_NAME;
//        this.NOTE = s_NOTE;
//        return true;
//    }
//    //────────────────────────────────────────────────────────────────────────
//    public bool DeleteSubspart()
//    {
//        string str = "DELETE FROM TBL_SUB_DEPARTMENT  WHERE SUBPART_ID=" + this.SUBPART_ID;

//        int Result = Exec(str);
//        if (Result != 1)
//        {
//            Mess = "Xóa khu vực thất bại ";
//            return false;
//        }
//        Mess = "Xóa khu vực thành công";
//        dtSubspart = GetTable("SELECT * FROM TBL_SUB_DEPARTMENT  ");
//        return true;
//    }

//    //────────────────────────────────────────────────────────────────────────
//    public static System.Data.DataTable dt_Search(string Codition)
//    {
//        System.Data.DataTable DT = GetTable("SELECT * FROM TBL_SUB_DEPARTMENT  " +
//            "WHERE  SUBPART_NAME LIKE N'%" + Codition + "%'");
//        if (DT == null) Mess = "Lỗi tìm kiếm khu vực\r\n kiểm tra kết nối";
//        DT.TableName = "TBL_SUB_DEPARTMENT";
//        return DT;
//    }
//    //────────────────────────────────────────────────────────────────────────
//    public static int int_Search(string s_Value, DataTable dtSearch)
//    {
//        DataTable dt = dt_Search(s_Value);
//        if (dt == null || dt.Rows.Count == 0)
//        {
//            Mess = "Không tìm thấy khu vực nói trên";
//            return -1;
//        }
//        else
//            return hsTool.int_Search(dtSearch, "SUBPART_ID=" + dt.Rows[0][0].ToString());
//    }
//    //────────────────────────────────────────────────────────────────────────

//    public static System.Data.DataTable dt_GetSubsparts()
//    {
//        if (dtSubspart == null || isChanged)
//        {
//            dtSubspart = GetTable("SELECT * FROM TBL_SUB_DEPARTMENT", "TBL_SUB_DEPARTMENT");
//            if (dtSubspart == null) Mess = "Lỗi lấy danh sách  khu vực\r\n kiểm tra kết nối";
//            isChanged = false;
//        }
//        return dtSubspart;
//    }

//    //────────────────────────────────────────────────────────────────────────

//    public static List<Support.ColumnView> getViewStyle()
//    {
//        List<Support.ColumnView> lstC = new List<Support.ColumnView>();
//        lstC.Add(new Support.ColumnView("SUBPART_NAME", "Tên khu vực", 0.50));
//        lstC.Add(new Support.ColumnView("NOTE", "Ghi chú", 0.50));
//        return lstC;
//    }
//    //────────────────────────────────────────────────────────────────────────
//}
#endregion
#region Address class
public class Address 
{
    private CSQLServer sqlServer = new CSQLServer();
    public string BLOCK_ID;
    public string STRT_ID;
    public string WARD_ID;
    public string DIST_ID;
    public string PROV_ID;
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getBlock()
    {
        return new Block().dt_GetBlocks();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getBlock(string s_Ward_ID)
    {
        return new Block().dt_GetBlocks(s_Ward_ID);
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getBlock_Dist(string s_Dist_ID)
    {
        return new Block().dt_GetBlocks_Dist(s_Dist_ID);
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getWard()
    {
        return new Ward().dt_getWards();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getWard(string s_DistID)
    {
        return new Ward().dt_getWards(s_DistID);
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getDistrict()
    {
        return new District().dt_getDistrict();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getDistrict(string s_ProvID)
    {
        return new District().dt_getDistrict(s_ProvID);
    }
    //────────────────────────────────────────────────────────────────────────
    //public static DataTable dt_getSubsPart()
    //{
    //    return Subspartmen.dt_GetSubsparts();
    //}
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getProvince()
    {
        return new Province().dt_GetProvince();
    }
    //────────────────────────────────────────────────────────────────────────
    public  DataTable dt_getStreet()
    {
        return new Street().dt_GetStreet();
    }
    //────────────────────────────────────────────────────────────────────────
    public Address() { }
    //────────────────────────────────────────────────────────────────────────
    public Address(string s_BLOCK_ID, string s_STRT_ID, string s_WARD_ID,
                        string s_DIST_ID, string s_PROV_ID)
    {
        this.BLOCK_ID = s_BLOCK_ID;
        this.STRT_ID = s_STRT_ID;
        this.WARD_ID = s_WARD_ID;
        this.DIST_ID = s_DIST_ID;
        this.PROV_ID = s_PROV_ID;
    }
    //────────────────────────────────────────────────────────────────────────
    public string s_FullAddress()
    {
        return new Block().s_getBlockName(this.BLOCK_ID) + " " + new Street().s_getStreetName(this.STRT_ID)
                + " " + new Ward().s_getWardName(this.WARD_ID) + " " + new District().s_getDistName(this.DIST_ID)
                + " " + new Province().s_getProvName(this.PROV_ID);




    }
    //────────────────────────────────────────────────────────────────────────
}//end class
#endregion
}

